// @babel/plugin-proposal-class-properties
class A {
  a = 1;
  constructor() {
    this.b = 2;
  }
}

// @babel/plugin-proposal-function-bind
// 允许使用::来绑定this到函数。
function Print() {
  console.log(this.loginId);
}

const obj = {
  loginId: "abc",
};

// Print.call(obj) // abc
// obj::Print(); // 相当于 Print.call(obj)

// @babel/plugin-proposal-optional-chaining
// 允许使用?.来访问属性，如果该属性不存在则返回undefined而不是报错。
const obj2 = {
  foo: {
    bar: {
      baz: 43,
    },
  },
};

const baz = obj2?.foo?.bar?.baz; // 43
const safe = obj2?.qux?.baz; // undefined
